<?php

// 直接アクセスを拒否する
if (!defined("IN_APP"))
	exit("直接アクセスはできません。");
		
// ログインの確認
if (isset($_SESSION['twitter_username'])) {
	define('LOGGED_IN', true);
	
	$twitter = new EpiTwitter($oauth_consumer_key, $oauth_consumer_secret);
	$twitter->setToken($_SESSION["oauth_key"], $_SESSION["oauth_secret"]);
} else {
	if (isset($_GET["oauth_token"])) {
		try {
			$twitterObj = new EpiTwitter($oauth_consumer_key, $oauth_consumer_secret);
			
			$twitterObj->setToken($_GET['oauth_token']);
			$token = $twitterObj->getAccessToken();
			$twitterObj->setToken($token->oauth_token, $token->oauth_token_secret);
			$twitterInfo= $twitterObj->get_accountVerify_credentials();	
			
			$_SESSION['user_id'] = $twitterInfo->id;
			$_SESSION['twitter_username'] = $twitterInfo->screen_name;
			$_SESSION['twitter_icon'] = $twitterInfo->profile_image_url;
			$_SESSION['oauth_key'] = $token->oauth_token;
			$_SESSION['oauth_secret'] = $token->oauth_token_secret;			
			
			$_SESSION['token'] = $twitterObj->getAccessToken();
			$_SESSION['twitterInfo'] = $twitterObj->get_accountVerify_credentials();			
		}
		catch (Exception $e) {
			$twitter_error = true;
		}
		
		// データベースに接続して、ユーザーが存在しているかどうか確認する
		$connect = connectToDb();
		
		if (!empty($twitterInfo->id)) {		
			if (userExists($connect, $twitterInfo->id)) {
				$query = sprintf("SELECT * FROM users WHERE user_id = %s ", 
											mysql_real_escape_string($twitterInfo->id));
				$query.= "AND (del_flag <> 'd' OR del_flag IS NULL)";
				
				$result = mysql_query($query, $connect);
				$row = mysql_fetch_assoc($result);
				
				// ツイッターのユーザー名が変わっている場合、データベースを更新する
				if ($row['twitter_username'] != $twitterInfo->screen_name) {
					$query = sprintf("UPDATE users SET twitter_username = '%s' WHERE user_id = %s ",
											mysql_real_escape_string($twitterInfo->screen_name),
											mysql_real_escape_string($twitterInfo->id));
					$query.= "AND (del_flag <> 'd' OR del_flag IS NULL)";
											
					mysql_query($query, $connect);
				}
				
				//　プロフィール入力されていなかったら、プロフィールタブを開く
				if (empty($row['name']) || empty($row['email']) || empty($row['birthdate']))
					$page_to_load = "profile";
				else
					$page_to_load = "group";
			} 
			else {
				// データベースにユーザーを入れる
				$query = sprintf("INSERT INTO users (user_id, twitter_username) VALUES (%s, '%s')", 
											mysql_real_escape_string($twitterInfo->id),
											mysql_real_escape_string($twitterInfo->screen_name));
				
				$result = mysql_query($query, $connect);
				
				if (!$result)
					die($query);
				
				$page_to_load = "profile";
			}
		}
		
		mysql_close($connect);
		
		$_SESSION["load_page"] = $page_to_load;
		header("Location: {$SETTINGS['SCRIPT_PATH']}");
	}
	else {
		define('LOGGED_IN', false);
	}
}

?>